Exercise 06-16:

Change Program 6.19 so that you can work with several commands entered at once. Currently, only one command can be entered at a time. Please change it to consider the operation as a string. For example, AAASSSX would mean three new customer arrivals, three services, and finally, the exit from the program.

Answer:

##############################################################################
# Python From Scratch
# Author: Nilo Ney Coutinho Menezes
# Editora Novatec (c) 2010-2025 - LogiKraft 2025
# Site: https://pythonfromscratch.com
# ISBN: 978-85-7522-949-1 (Paperback), 978-85-7522-950-7 (hardcover), 978-85-7522-951-4 (ebook)
#
# File: chapter 06/exercise-06-05.py.py
##############################################################################
last = 10
queue = list(range(1, last + 1))
while True:
    print(f"\nThere are {len(queue)} customers in the queue")
    print("Current queue:", queue)
    print("Enter F to add a customer to the end of the queue,")
    print("or A to serve a customer. X to exit.")
    operation = input("Operation (F, A or X):")
    x = 0
    exit = False
    while x < len(operation):
        if operation[x] == "A":
            if len(queue) > 0:
                served = queue.pop(0)
                print(f"Customer {served} served")
            else:
                print("Empty queue! No one to serve.")
        elif operation[x] == "F":
            last += 1  # Increments the new customer's ticket
            queue.append(last)
        elif operation[x] == "X":
            exit = True
            break
        else:
            print(
                f"Invalid operation: {operation[x]} at position {x}! Enter only F, A or X!"
            )
        x += 1
    if exit:
        break
Click here to download the file